/*
*  Demo Container - It cans stored data when it's type is std::string.
*  Copyright (C) 2014  Dawei
*	 All rights reserved.
*
*  The project is been used for exercise in the MulticoreWare Inc.
*
*  DemoContainer.h: Define the class for Container
*
*/

#ifndef _DEMOCONTAINER_H_
#define _DEMOCONTAINER_H_

#include "DemoContainerCommon.h"


namespace democontainer
{
  class DemoContainer
  {

  public:

   explicit DemoContainer();
    ~DemoContainer();

  public:

    /*
     *	@Description: Get the number of Container.
     *  @Return: The number of Container.
     */
    int get_size(void);

    /*
     *	@Description: Add the item for Container.
     *  @Input-param:[str] The value of item.
     *  @Return: The index of item.
     */
    int add_item(const std::string& str);

    /*
     *	@Description: Get the item by index from Container.
     *  @Input-param:[index] The index of item.
     *  @Return: The value of item.
     */
    std::string get_item(int index);

    /*
     *	@Description: Remove the item by index from Container.
     *  @Input-param:[index] The index of item.
     #  @Return: Success(true) Or Fail(false)
     */
    bool remove_item(int index);

  private:

    //!< the vector for storing data
    common::Container Container_;

  };
};

#endif //!< _DEMOCONTAINER_H_